home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 7.6 KB | 224 lines | [TEXT/MPS ] |
- {
- File: CoachMarks.p
-
- Contains: Public CoachMark programming interface.
-
- Version: Technology: Copland
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- }
- {$IFC UNDEFINED UsingIncludes}
- {$SETC UsingIncludes := 0}
- {$ENDC}
-
- {$IFC NOT UsingIncludes}
- UNIT CoachMarks;
- INTERFACE
- {$ENDC}
-
- {$IFC UNDEFINED __COACHMARKS__}
- {$SETC __COACHMARKS__ := 1}
-
- {$I+}
- {$SETC CoachMarksIncludes := UsingIncludes}
- {$SETC UsingIncludes := 1}
-
- {$IFC UNDEFINED __TYPES__}
- {$I Types.p}
- {$ENDC}
- {$IFC UNDEFINED __SOUND__}
- {$I Sound.p}
- {$ENDC}
- {$IFC UNDEFINED __WINDOWS__}
- {$I Windows.p}
- {$ENDC}
- {$IFC UNDEFINED __HIWINDOWTYPES__}
- {$I HIWindowTypes.p}
- {$ENDC}
-
- {$PUSH}
- {$ALIGN MAC68K}
- {$LibExport+}
-
- {$IFC FOR_SYSTEM8_COOPERATIVE }
- {
- Attributes —————————————————————————————————————————————————————————————————————————————————————————————
- animation speeds
- }
-
- CONST
- kCoachMarkFastest = 0;
- kCoachMarkSlowest = 31;
-
- { sloppiness }
- kPerfectCoachMark = 0;
- kSloppyCoachMark = 100;
-
- { translucency }
- kMaxCoachMarkWeight = 100;
- kDefaultCoachMarkRegularWeight = 75;
- kDefaultCoachMarkHiddenWeight = 25;
-
- { stroke width }
- kDefaultCircleCoachMarkThickness = 12;
- kDefaultUnderlineCoachMarkThickness = 8;
- kDefaultXCoachMarkThickness = 15;
- kDefaultArrowCoachMarkThickness = 7;
- kDefaultHighlighterCoachMarkThickness = 5;
-
- { Selectors ——————————————————————————————————————————————————————————————————————————————————————————————— }
- kCircleCoachMark = 1;
- kUnderlineCoachMark = 2;
- kXCoachMark = 3;
- kArrowCoachMark = 4;
- kHighlighterCoachMark = 5;
- kNumCoachMarkTypes = 5;
-
-
- TYPE
- CoachMarkType = UInt32;
-
- CONST
- kCoachMarkStraight = 0;
- kCoachMarkCurvesUp = 1;
- kCoachMarkCurvesDown = 2;
-
-
- TYPE
- CoachMarkCurvature = UInt32;
- {
- Flags ———————————————————————————————————————————————————————————————————————————————————————————————————
- theme element inheritance flags -- is "heritage" and "inherit" too wordy? Could use a scheme based on the word "trait"
- }
-
- CONST
- kCoachOverrideThemeNothing = 0;
- kCoachOverrideThemeColor = $01;
- kCoachOverrideThemeOpacity = $02;
- kCoachOverrideThemeSloppiness = $04;
- kCoachOverrideThemeStrokeWidth = $08;
- kCoachOverrideAllThemeTraits = $FFFFFFFF;
-
-
- TYPE
- CoachThemeOverrideFlags = UInt32;
-
- CONST
- kCoachMarkDefaultAnimation = 0;
-
-
- TYPE
- CoachAnimationType = UInt32;
- {
- In which direction should the animation go? For an arrow or underline
- this is inherent in the geometry. For the others, some bit flags:
- }
-
- CONST
- kCoachMarkDefaultDirection = 0; { for circle: }
- kCoachMarkClockwise = $0000;
- kCoachMarkCounterClockwise = $0001; { X stroke direction: }
- kCoachMarkTopLeftToBottomRightMask = $0000;
- kCoachMarkBottomRightToTopLeftMask = $0004; { X stroke direction: }
- kCoachMarkTopRightToBottomLeftMask = $0000;
- kCoachMarkBottomLeftToTopRightMask = $0008; { which X stroke is first: }
- kCoachMarkTopLeftToBottomRightFirstMask = $0000;
- kCoachMarkTopRightToBottomLeftFirstMask = $0010;
-
-
- TYPE
- CoachDirection = UInt32;
- { to specify how to erase a coach mark }
-
- CONST
- kCoachMarkDefaultErase = 0;
-
-
- TYPE
- CoachMarkEraseOptions = UInt32;
- {
- Structures —————————————————————————————————————————————————————————————————————————————————————————
- opaque reference to a coach mark
- }
- CoachMarkRef = ^LONGINT;
- { CoachMarkRec specifies the appearance of a CoachMark }
- CoachMarkRecPtr = ^CoachMarkRec;
- CoachMarkRec = RECORD
- markType: CoachMarkType; { which shape of mark? }
- themeOverrides: CoachThemeOverrideFlags; { which values do we get from the theme? }
- color: RGBColor; { what color shall the CoachMark be? }
- sound: Handle; { sound to be played upon drawing the coachmark (••• Doesn’t work in D11) }
- regularPercentage: UInt16; { 0..100 - opacity as drawn within the specified grafport }
- hiddenPercentage: UInt16; { 0..100 - opacity as drawn outside the specified grafport }
- sloppiness: UInt16; { 0..100 }
- thickness: UInt16; { in pixels }
- curvature: CoachMarkCurvature; { direction of bulge for line-like marks }
- END;
-
- { CoachMarkAnimation specifies the appearance of a coach mark's animation }
- CoachMarkAnimationPtr = ^CoachMarkAnimation;
- CoachMarkAnimation = RECORD
- effectType: CoachAnimationType;
- speed: UInt32;
- direction: CoachDirection;
- END;
-
- {
- The Freaky Good Stuff ———————————————————————————————————————————————————————————————————————————————
- Creation/destruction
- }
- FUNCTION NewCoachMarkRef({CONST}VAR appearance: CoachMarkRec; VAR newCoachMark: CoachMarkRef): OSStatus; C;
- FUNCTION GetNewCoachMarkRef(resID: SInt16; VAR newMark: CoachMarkRef): OSStatus; C;
- FUNCTION DisposeCoachMark(theMark: CoachMarkRef): OSStatus; C;
- { To specify geometry }
- FUNCTION CoachRectOnWindow(mark: CoachMarkRef; VAR window: HIWindow; {CONST}VAR localRect: Rect): OSStatus; C;
- FUNCTION CoachGlobalRect(mark: CoachMarkRef; {CONST}VAR globalRect: Rect): OSStatus; C;
- FUNCTION CoachStrokeOnWindow(theMark: CoachMarkRef; VAR window: HIWindow; {CONST}VAR localSource: Point; {CONST}VAR localDest: Point): OSStatus; C;
- FUNCTION CoachGlobalStroke(theMark: CoachMarkRef; {CONST}VAR globalSource: Point; {CONST}VAR globalDest: Point): OSStatus; C;
- { Accessors }
- FUNCTION GetCoachMarkType(theMark: CoachMarkRef): CoachMarkType; C;
- FUNCTION GetCoachMarkWindow(theMark: CoachMarkRef): HIWindowPtr; C;
- FUNCTION GetCoachMarkRect(mark: CoachMarkRef; VAR globalRect: Rect): OSStatus; C;
- FUNCTION GetCoachMarkStroke(theMark: CoachMarkRef; VAR globalSource: Point; VAR globalDest: Point): OSStatus; C;
- FUNCTION SetCoachMarkColor(theMark: CoachMarkRef; {CONST}VAR color: RGBColor): OSStatus; C;
- FUNCTION GetCoachMarkColor(theMark: CoachMarkRef; VAR color: RGBColor): OSStatus; C;
- FUNCTION SetCoachMarkRegularWeight(theMark: CoachMarkRef; weight: UInt16): OSStatus; C;
- FUNCTION GetCoachMarkRegularWeight(theMark: CoachMarkRef): UInt16; C;
- FUNCTION SetCoachMarkHiddenWeight(theMark: CoachMarkRef; weight: UInt16): OSStatus; C;
- FUNCTION GetCoachMarkHiddenWeight(theMark: CoachMarkRef): UInt16; C;
- FUNCTION SetCoachMarkThickness(theMark: CoachMarkRef; thickness: UInt16): OSStatus; C;
- FUNCTION GetCoachMarkThickness(theMark: CoachMarkRef): UInt16; C;
- FUNCTION SetCoachMarkSloppiness(theMark: CoachMarkRef; sloppiness: UInt16): OSStatus; C;
- FUNCTION GetCoachMarkSloppiness(theMark: CoachMarkRef): UInt16; C;
- FUNCTION SetCoachMarkCurvature(theMark: CoachMarkRef; curvature: CoachMarkCurvature): OSStatus; C;
- FUNCTION GetCoachMarkCurvature(theMark: CoachMarkRef): CoachMarkCurvature; C;
- FUNCTION SetCoachMarkThemeOverrides(theMark: CoachMarkRef; inHeritage: CoachThemeOverrideFlags): OSStatus; C;
- FUNCTION GetCoachMarkThemeOverrides(theMark: CoachMarkRef; VAR outHeritage: CoachThemeOverrideFlags): OSStatus; C;
- {
- Drawing, animation, erasing
- CoachMarkInteraction is synchronous and applies globallly, the other three are not and require windows
- }
- FUNCTION CoachMarkInteraction(theMark: CoachMarkRef; {CONST}VAR effect: CoachMarkAnimation): OSStatus; C;
- FUNCTION AnimateCoachMark(theMark: CoachMarkRef; {CONST}VAR effect: CoachMarkAnimation): OSStatus; C;
- FUNCTION DrawCoachMark(theMark: CoachMarkRef): OSStatus; C;
- FUNCTION EraseCoachMark(theMark: CoachMarkRef; options: CoachMarkEraseOptions): OSStatus; C;
- {$ENDC}
- {$ALIGN RESET}
- {$POP}
-
- {$SETC UsingIncludes := CoachMarksIncludes}
-
- {$ENDC} {__COACHMARKS__}
-
- {$IFC NOT UsingIncludes}
- END.
- {$ENDC}
-